package com.jdls.day01.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * @author 嘉德罗斯
 * @date 2021/8/19
 */
public class test2 {
    public static void main(String[] args) throws Exception {
        //创建表，用【JDBC】完成下列需求：
        //	create table account (
        //		id int primary key auto_increment,
        //		name varchar(20), -- 账户名
        //		money int -- 账户余额
        //	)
        //
        //	1. 给表添加三条数据，账户名分别为张三、李四、老王
        //	2. 将所有账户的金额都修改成1000
        //	3. 删除账户名为老王的数据
        //	4. 模拟一次转账操作，用事务管理起来：
        //		张三给李四转500元
        Class.forName("com.mysql.jdbc.Driver");
        String usl = "jdbc:mysql:///db?useSSl=false";
        String user = "root";
        String password = "1234";
        Connection co = DriverManager.getConnection(usl,user,password);
        /*String sql ="create table account (\n" +
                "\t\tid int primary key auto_increment,\n" +
                "\t\tname varchar(20), -- 账户名\n" +
                "\t\tmoney int -- 账户余额\n" +
                "\t)";*/
        /*1. 给表添加三条数据，账户名分别为张三、李四、老王
        String sql = "INSERT INTO account(name) VALUES('张三'),('李四'),('老王')";*/

        /*2. 将所有账户的金额都修改成1000
        String sql = "UPDATE account SET money = 1000";*/

        /*3. 删除账户名为老王的数据
        String sql = "DELETE FROM account WHERE name = '老王'";*/

        /*4. 模拟一次转账操作，用事务管理起来：
		张三给李四转500元*/
        Statement st = co.createStatement();
        try {
            co.setAutoCommit(false);
            String sql1 = "UPDATE account SET money = money+500 where name = '李四';";
            String sql2 = "UPDATE account SET money = money-500 where name = '张三';";
            int i1 = st.executeUpdate(sql1);
            int i2 = st.executeUpdate(sql2);
            co.commit();
        } catch (Exception e) {
            co.rollback();
            e.printStackTrace();
        }
        //System.out.println(i1);
        co.close();
        st.close();
    }
}
